In [1]:
# a szokásos rutinok betöltése
%pylab inline
from scipy.integrate import * # az integráló rutinok betöltése
from ipywidgets import *  # az interaktivitásért felelős csomag

import matplotlib.pyplot as plt 


from IPython.core.display import HTML
Populating the interactive namespace from numpy and matplotlib
In [2]:
HTML('''<script>
code_show=true;
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit"
value="Click here to toggle on/off the raw code."></form>''')
Out[2]:
In [3]:
rc('text', usetex=True)  # az abran a xticks, yticks fontjai LaTeX fontok lesznek 
In [4]:
def homerseklet(V,p):  
    tmp=(p+3/V**2)*(3*V-1)/8
    return (tmp)
In [5]:
def hotagulas(V,T): 
    if T > 1:
        tmp = 9/4/V/(T/(3*V-1)-(3*V-1)/4/V**3) 
    else:
        tmp=0;
    
    return (tmp)
In [6]:
def alpha_approx(T):
    if T>1:
        tmp=2/3/abs((T-1))
    else:
        tmp=0
    return(tmp)
In [7]:
def kappaT(V,T):
    if T>1:
        tmp = 9*(3*V-1)/V/(8*T/(3*V-1)-2*(3*V-1)/V**3) 
    else:
        tmp=0
    return (tmp)
In [8]:
def kappa_approx(T):
    if T>1:
        tmp=9/2/(T-1)
    else:
        tmp=0
    return(tmp)
In [9]:
# Abra es fontmeretek
xfig_meret= 9   #    12 nagy abrahoz
yfig_meret= 6    #   12 nagy abrahoz
xyticks_meret= 15  #  20 nagy abrahoz
xylabel_meret= 21  #  30 nagy abrahoz
legend_meret= 21   #  30 nagy abrahoz

A hőtágulási együttató és az izotermikus kompresszibilitási tényező van der Waals-gázra

Hőtágulási együttható, $\alpha_T = \frac{1}{V}\, \left. \frac{\partial V}{\partial T}\right| _{p}$

A kritikus pont közelében (ha $T-T_c \ll T_c$): $\alpha_T^{\scriptscriptstyle \mathrm{köz}} \approx \frac{2}{3}\, \frac{1}{T_c}\, \frac{1}{\frac{T}{T_c}-1}$

In [10]:
p0=(1.001,1.1)
(Vmin,Vmax)=(0.75,1.7)
Npont=1000
VV=linspace(Vmin,Vmax,Npont) #mintavételezési pontok legyártása

x1=homerseklet(VV,p0[0])
y1=[]
for i in range(0,Npont):
     y1.append(hotagulas(VV[i],x1[i]))

x2=homerseklet(VV,p0[1])
y2=[]
for i in range(0,Npont):
     y2.append(hotagulas(VV[i],x2[i]))
        
x3=linspace(0.9,1.1,Npont)
y3=[]
for i in range(0,Npont):
    y3.append(alpha_approx(x3[i]))

figsize(xfig_meret,yfig_meret)

xylabel_meret=25


plot(x1,y1,label=r'$\alpha_T, \; \hat{p}=1.001$',lw=3,ls='-',color='red');
plot(x2,y2,label=r'$\alpha_T, \; \hat{p}=1.1$',lw=3,ls='--',color='blue');
plot(x3,y3,label=r'$\alpha_T^{\mathrm{k\ddot {o}z}}, \; \hat{p}=1.$',lw=3,ls='dotted',color='blue');

legend(loc='upper right',fontsize=legend_meret)

xlabel(r'$T/T_c$',fontsize=xylabel_meret)
ylabel(r'$\alpha_T$',fontsize=xylabel_meret,rotation='horizontal')
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);

xlim(0.98,1.05)
ylim(0,800)

ax = gca()
ax.yaxis.set_label_coords(-0.15, 0.65);  #  ylabel position 
#title(r'$E(T)$ ', fontsize=20)

#savefig('xxxxx.eps',pad_inches=0.0,bbox_inches='tight');  # Abra kimentese

Izotermikus kompresszibilitási tényező, $\kappa_T = -\frac{1}{V}\, \left. \frac{\partial V}{\partial p}\right| _{T}$

A kritikus pont közelében (ha $T-T_c \ll T_c$): $\kappa_T^{\scriptscriptstyle \mathrm{köz}} \approx \frac{1}{6}\, \frac{1}{p_c}\, \frac{1}{\frac{T}{T_c}-1}$

In [11]:
V0=(1.01,1.01)
(Tmin,Tmax)=(0.8,1.2)
Npont=1000

xx=linspace(Tmin,Tmax,Npont) #mintavételezési pontok legyártása
y1=[]
for i in range(0,Npont):
     y1.append(kappaT(V0[0],xx[i]))

y2=[]
for i in range(0,Npont):
     y2.append(kappaT(V0[1],xx[i]))

x3=linspace(0.9,1.1,Npont)
y3=[]
for i in range(0,Npont):
     y3.append(kappa_approx(x3[i]))

figsize(xfig_meret,yfig_meret)

xylabel_meret=25


plot(xx,y1,label=r'$\kappa_T, \; \hat{V}=1.01$',lw=3,ls='-',color='red');
#plot(xx,y2,lw=3,ls='-',color='blue');
plot(x3,y3,label=r'$\kappa_T^{\mathrm{k\ddot {o}z}}, \; \hat{V}=1.$',lw=3,ls='--',color='blue');
legend(loc='upper right',fontsize=legend_meret)

xlabel(r'$T/T_c$',fontsize=xylabel_meret)
ylabel(r'$\kappa_T$',fontsize=xylabel_meret,rotation='horizontal')
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);

ylim(0,1000)

ax = gca()
ax.yaxis.set_label_coords(-0.15, 0.65);  #  ylabel position 
#title(r'$E(T)$ ', fontsize=20)

#savefig('xxxxx.eps',pad_inches=0.0,bbox_inches='tight');  # Abra kimentese